<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

  <body>
    <div id="root"></div>
    <script type="text/babel">
      class Hello extends React.Component {
        constructor(props){
          // 子类必须在constructor构造器中调用super方法，从而得到父类的this对象，否则新建实例时会报错。
          // super方法是把属性传递给父级的构造函数类
          super(props)
          this.state = {
            name:'李四',
            age:18
          }
          // super方法传props和不传props的区别,就在于this.props是否可以访问到,加了props就是可以访问到,不加就是不可以访问到
          // 如果需要在构造函数中要使用props，则在调用super()方法的时候必须传porps,不需要可以不传
          console.log(props,'props')
          console.log(this,'this')
        }
        render(){
          return <div>
            <h1>我是一个有状态组件</h1>
            <p>姓名：{this.state.name}</p>
            <p>年龄：{this.state.age}</p>
            <p>职业：前端开发</p>
            <p>传入的 姓名：{this.props.name}</p>
            <p>传入的 年龄：{this.props.age}</p>
            <p>职业：前端开发</p>
            </div>
        }
      }
      ReactDOM.render(<Hello name='张三' age='19'  />, document.getElementById('root'))
    </script>
  </body>
</html>
